Snake Case, Kebab Case, এবং Camel Case Naming স্টাইল

Java Technologies - জ্যাকসন (Jackson) - Jackson এর সাথে Custom Naming Strategy ব্যবহার
209

Jackson ডিফল্টভাবে camelCase (যেমন, firstName) ব্যবহার করে সিরিয়ালাইজ এবং ডেসিরিয়ালাইজ করে। তবে, প্রজেক্টের প্রয়োজন অনুযায়ী snake_case (যেমন, first_name) বা kebab-case (যেমন, first-name) ফরম্যাট ব্যবহারের জন্য Jackson-এ কনফিগারেশন পরিবর্তন করা সম্ভব।


Naming Strategy সেটআপ করার ধাপ

Jackson এর PropertyNamingStrategy বা নতুন PropertyNamingStrategies API ব্যবহার করে বিভিন্ন নামকরণ স্টাইল সেট করা যায়।


1. Snake Case Naming Strategy

উদাহরণ: Snake Case ব্যবহার

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;

public class SnakeCaseExample {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        // Snake Case Naming Strategy সেট করা
        mapper.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE);

        User user = new User("John", "Doe");
        String json = mapper.writeValueAsString(user);
        System.out.println("Serialized JSON (Snake Case): " + json);

        String inputJson = "{ \"first_name\": \"John\", \"last_name\": \"Doe\" }";
        User deserializedUser = mapper.readValue(inputJson, User.class);
        System.out.println("Deserialized User: " + deserializedUser);
    }
}

class User {
    private String firstName;
    private String lastName;

    // Constructor
    public User(String firstName, String lastName) {
        this.firstName = firstName;
        this.lastName = lastName;
    }

    // Getters
    public String getFirstName() {
        return firstName;
    }

    public String getLastName() {
        return lastName;
    }

    // toString Method
    @Override
    public String toString() {
        return "User{firstName='" + firstName + "', lastName='" + lastName + "'}";
    }
}

Output:

Serialized JSON (Snake Case): {"first_name":"John","last_name":"Doe"}
Deserialized User: User{firstName='John', lastName='Doe'}

2. Kebab Case Naming Strategy

উদাহরণ: Kebab Case ব্যবহার

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategies;

public class KebabCaseExample {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        // Kebab Case Naming Strategy সেট করা
        mapper.setPropertyNamingStrategy(PropertyNamingStrategies.KEBAB_CASE);

        User user = new User("Jane", "Doe");
        String json = mapper.writeValueAsString(user);
        System.out.println("Serialized JSON (Kebab Case): " + json);

        String inputJson = "{ \"first-name\": \"Jane\", \"last-name\": \"Doe\" }";
        User deserializedUser = mapper.readValue(inputJson, User.class);
        System.out.println("Deserialized User: " + deserializedUser);
    }
}

Output:

Serialized JSON (Kebab Case): {"first-name":"Jane","last-name":"Doe"}
Deserialized User: User{firstName='Jane', lastName='Doe'}

3. Camel Case Naming Strategy

Camel Case ডিফল্ট স্টাইল:

  • Jackson ডিফল্টভাবে camelCase ব্যবহার করে। কোনো অতিরিক্ত কনফিগারেশন প্রয়োজন নেই।

4. Custom Naming Strategy

Custom Naming Strategy তৈরি:

আপনার নিজের কাস্টম নামকরণ স্ট্র্যাটেজি তৈরি করতে PropertyNamingStrategy এক্সটেন্ড করুন।

import com.fasterxml.jackson.databind.PropertyNamingStrategies;

public class CustomNamingStrategy extends PropertyNamingStrategies.NamingBase {
    @Override
    public String translate(String propertyName) {
        return "custom_" + propertyName.toLowerCase();
    }
}

Custom Naming Strategy ব্যবহার:

import com.fasterxml.jackson.databind.ObjectMapper;

public class CustomNamingStrategyExample {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        // Custom Naming Strategy সেট করা
        mapper.setPropertyNamingStrategy(new CustomNamingStrategy());

        User user = new User("Custom", "Strategy");
        String json = mapper.writeValueAsString(user);
        System.out.println("Serialized JSON (Custom): " + json);
    }
}

Output:

Serialized JSON (Custom): {"custom_firstname":"Custom","custom_lastname":"Strategy"}

Jackson Naming Strategy এর তুলনা

Naming StyleDescriptionExample
Camel Caseডিফল্ট স্টাইলfirstName
Snake Caseunderscore (_) দিয়ে পৃথকfirst_name
Kebab Caseহাইফেন (-) দিয়ে পৃথকfirst-name
Customপ্রয়োজন অনুযায়ী সংজ্ঞায়িতcustom_firstname

নামকরণ স্ট্র্যাটেজি সেট করার সুবিধা

  1. Consistency: JSON ডেটার ফরম্যাট স্ট্যান্ডার্ড রাখতে সাহায্য করে।
  2. Interoperability: বিভিন্ন সিস্টেম বা API-এর সাথে সমন্বয় সহজ হয়।
  3. Customization: বিশেষ প্রয়োজন অনুযায়ী JSON ফরম্যাট তৈরি করা যায়।

Jackson এর Snake Case, Kebab Case, এবং Camel Case কনফিগারেশন সহজ এবং কার্যকর। এছাড়াও, কাস্টম নামকরণ স্ট্র্যাটেজি ব্যবহার করে প্রয়োজন অনুযায়ী JSON ফরম্যাটিং কাস্টমাইজ করা যায়।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...